package com.projeto.bola.web.grupoEsporte;


import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

import com.projeto.bola.web.usuario.Usuario;


public class GrupoEsporteDAOHibernate implements GrupoEsporteDAO {

	private Session sessao;

	
	public Session getSessao() {
		return sessao;
	}

	public void setSessao(Session sessao) {
		this.sessao = sessao;
	}

	@Override
	public void salvar(GrupoEsporte grupoEsporte) {
		this.sessao.save(grupoEsporte);		
	}

	@Override
	public GrupoEsporte pesquisarPorNome(String nome) {
		String sql = "from GrupoEsporte where nome_grupo like :nome";				
		Query consulta = sessao.createQuery(sql);
		consulta.setString("nome", "%" + nome + "%");
		
		return (GrupoEsporte) consulta.uniqueResult();
	}

	@Override
	public void excluir(GrupoEsporte grupo) {
		this.sessao.delete(grupo);		
	}

	@Override
	public void alterar(GrupoEsporte nomeGrupo) {
		this.sessao.update(nomeGrupo);		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<GrupoEsporte> listar() {
		Criteria lista = sessao.createCriteria(GrupoEsporte.class);
		return lista.list();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<GrupoEsporte> grupoNomeIDUsuario(GrupoEsporte grupoEsporte) {
		String sql = "from GrupoEsporte where id_usuario_presidente = :id_usuario";				
		Query consulta = sessao.createQuery(sql);
		consulta.setInteger("id_usuario",grupoEsporte.getUsuarioPresidente().getId());
		return consulta.list();
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<GrupoEsporte> grupoInicialIDUsuario(Usuario usuario) {
		String sql = "from GrupoEsporte where id_usuario_presidente = :id_usuario";				
		Query consulta = sessao.createQuery(sql);
		consulta.setInteger("id_usuario", usuario.getId());	
		return consulta.list();
	}

	@Override
	public GrupoEsporte pesquisarPorID(Integer id) {
		String sql = "from GrupoEsporte where id = :id";				
		Query consulta = sessao.createQuery(sql);
		consulta.setInteger("id", id);	
		
		return (GrupoEsporte) consulta.uniqueResult();
	}	
	
}
